Not Applicable.
The present embodiments relate to universal serial bus (xe2x80x9cUSBxe2x80x9d) systems, and are more particularly directed to increasing the rate and flexibility of communications between a USB host and a peripheral.
USB is a recently-developed technology established by a joint effort of various companies. The joint-effort produced a USB Specification, Revision 1.1, Sep. 28, 1998, which is hereby incorporated herein by reference and which governs many aspects about USB systems. The USB Specification is directed to a goal of improving the user-friendliness of various aspects of computers and the peripheral devices typically used with such computers. Particularly, in a USB system, various devices connected in the prior art to a computer via either internal buses or often different external connectors are now coupled, using a USB cable, to a common USB bus. The USB bus is mastered by a USB host in a manner that requires little or no configuration by the user. Various benefits arise in USB, including the ability to add devices to, or remove devices from, a USB system while the system is operating. As another benefit, USB easily integrate various functions such as raw data, voice data, and video data. These benefits are also achieved without requiring add-on cards, and through a single protocol that supports serial data transfers between a USB host and USB-operable peripherals simply by coupling those peripherals to a common USB bus. Still further, the ability to quickly and easily connect and disconnect devices provides considerable flexibility and possible cost reduction in comparison to many contemporary systems.
While USB systems provide the various benefits set forth above, the present inventors have recognized a drawback in USB systems in that control data throughput for such systems may be necessarily constrained due to the USB Specification. For example, the USB Specification requires that USB data packet transfers fall into one of four data categories, one of which is a control data category. The Specification imposes constraints and/or overhead on control data for communications of that data between a host and the so-called endpoint in a USB device coupled to the USB bus. In view of these limitations, there arises a need to improve the efficiency of data communication in USB systems, as is achieved by the preferred embodiments described below.
In the preferred embodiment, there is a USB function device for coupling to a USB host. The USB function device comprises circuitry for providing a capability to the USB host, where the circuitry for providing a capability comprises an address space. The USB function device further comprises a USB interface circuit coupled between the USB host and the circuitry for providing a capability to the USB host. The USB interface circuit comprises a memory area comprising a write endpoint accessible to the USB host for writing a plurality of bytes to the memory area via the write endpoint. The write endpoint comprises an endpoint-type other than a control-type endpoint. The plurality of bytes comprises data information and protocol information. The USB interface circuit also comprises circuitry for decoding the protocol information and circuitry for communicating the data information to the address space in response to the protocol information.
In additional aspects of the preferred embodiment, the USB interface circuit comprises a second memory area comprising a read endpoint accessible by the USB host for reading a second plurality of bytes from the second memory area via the read endpoint. Further in this regard, the USB interface circuit comprises circuitry for inserting into the second plurality of bytes second protocol information to be read by the USB host. Still further, this USB interface circuit comprises circuitry for including data information in the second plurality of bytes to be read by the USB host. The data information in the second plurality of bytes is from the address space.
In yet additional aspects of the preferred embodiment, the USB interface circuit comprises a memory area comprising an interrupt endpoint accessible by the USB host for reading interrupt information via the read endpoint. Further in this embodiment, the USB interface circuit comprises circuitry for inserting the interrupt notification into the interrupt endpoint.
Other circuits, systems, and methods are also disclosed and claimed.